const SCREENSAVER_SCHEMA = 'org.gnome.desktop.screensaver';
const CROSSFADE_TIME = 300;
+const FADE_OUT_TRANSLATION = 200;
+const FADE_OUT_SCALE = 0.3;
const BLUR_BRIGHTNESS = 0.55;
const BLUR_SIGMA = 60;
let stack = new Shell.Stack();
this._promptBox = new St.BoxLayout({ vertical: true });
+ this._promptBox.set_pivot_point(0.5, 0.5);
stack.add_child(this._promptBox);
this._clock = new Clock();
+ this._clock.set_pivot_point(0.5, 0.5);
stack.add_child(this._clock);
this._showClock();
this._activePage = this._clock;
this._clock.show();
+ const { scaleFactor } = St.ThemeContext.get_for_stage(global.stage);
+
this._promptBox.ease({
opacity: 0,
+ scale_x: FADE_OUT_SCALE,
+ scale_y: FADE_OUT_SCALE,
+ translation_y: FADE_OUT_TRANSLATION * scaleFactor,
duration: CROSSFADE_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => {
},
});
+ this._clock.set({
+ scale_x: FADE_OUT_SCALE,
+ scale_y: FADE_OUT_SCALE,
+ translation_y: -FADE_OUT_TRANSLATION * scaleFactor,
+ });
+
this._clock.ease({
opacity: 255,
+ scale_x: 1,
+ scale_y: 1,
+ translation_y: 0,
duration: CROSSFADE_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
});
this._activePage = this._promptBox;
this._promptBox.show();
+ const { scaleFactor } = St.ThemeContext.get_for_stage(global.stage);
+
+ this._promptBox.set({
+ scale_x: FADE_OUT_SCALE,
+ scale_y: FADE_OUT_SCALE,
+ translation_y: FADE_OUT_TRANSLATION * scaleFactor,
+ });
+
this._clock.ease({
opacity: 0,
+ scale_x: FADE_OUT_SCALE,
+ scale_y: FADE_OUT_SCALE,
+ translation_y: -FADE_OUT_TRANSLATION * scaleFactor,
duration: CROSSFADE_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => this._clock.hide(),
this._promptBox.ease({
opacity: 255,
+ scale_x: 1,
+ scale_y: 1,
+ translation_y: 0,
duration: CROSSFADE_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
});